package LeetCode.leetcode24;

/**
 * 给你一个链表，两两交换其中相邻的节点，并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题（即，只能进行节点交换）。
 */
public class Swap {
    public ListNode swapPairs(ListNode head) {
        return swap(null,head);
    }
    public static ListNode swap(ListNode preHead, ListNode head){
        if (head != null && head.next != null){
            ListNode cNext = head.next.next;
            head.next.next = head;
            ListNode mHead = head.next;
            if (preHead != null){
                preHead.next = head.next;
            }
            head.next = cNext;
            swap(head,cNext);
            return mHead;
        }
        return head;
    }

}
